﻿using DFGK_WMS.Model.DTO;
using DFGK_WMS.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace DFGK_WMS.IRepository
{
    public interface ITStationRepository: IBaseRepository<StationDto>
    {
        /// <summary>
        /// 添加站台信息
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        bool AddStation(StationDto obj,out string message);
        /// <summary>
        /// 修改站台信息
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        bool UpdateStation(StationDto obj, out string message);
        /// <summary>
        /// 删除站台信息
        /// </summary>
        /// <param name="uid"></param>
        /// <returns></returns>
        bool DelStation(int uid);
        /// <summary>
        /// 显示站台信息
        /// </summary>
        /// <param name="zcode"></param>
        /// <param name="zname"></param>
        /// <param name="kid"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        List<StationDto> GetStationList(string cname, int kid, int pageIndex, int pageSize, out int totalCount);

        /// <summary>
        /// 带条件查询站台
        /// </summary>
        /// <param name="where"></param>
        /// <returns></returns>
        List<TStation> GetStationList(Expression<Func<TStation, bool>> where);
        /// <summary>
        /// 获取库房(仓库)信息
        /// </summary>
        /// <returns></returns>
        List<TWarehouse> GetTwarehouseList();
        /// <summary>
        /// 根据id获取站台信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        TStation GetStationById(int id);
        /// <summary>
        /// 根据物料名称查询物料信息
        /// </summary>
        /// <returns></returns>
        List<TMaterial> GetTmaterialList(string wname,int pageIndex,int pageSize,out int totalCount);
        /// <summary>
        /// 获取物料信息
        /// </summary>
        /// <returns></returns>
        List<TMaterial> GetTmaterList();
        /// <summary>
        /// 添加站点数据
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        bool AddTmater(MaterDto obj);
        /// <summary>
        /// 货品明细
        /// </summary>
        /// <param name="zcode"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        List<TStationDatum> GetMaterList(string zcode, int pageIndex, int pageSize, out int totalCount);
        /// <summary>
        /// 导出货品明细Excel
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        List<MaterDto> GetExcel();
    }
}
